package org.mc.domainservice;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

/**
 * Created by luoxf on 2018/9/14.
 */
public class ThreadDomainService {

    private Executor executor = Executors.newFixedThreadPool(20);  //创建一个固定大小的线程池，因为采用无界的阻塞队列，所以实际线程数量永远不会变化，适用于可以预测线程数量的业务中，或者服务器负载较重，对当前线程数量进行限制。
/*
    private Executor executor = Executors.newCachedThreadPool();   //用来创建一个可以无限扩大的线程池，适用于服务器负载较轻，执行很多短期异步任务。
    private Executor executor = Executors.newSingleThreadExecutor();  //创建一个单线程的线程池，适用于需要保证顺序执行各个任务，并且在任意时间点，不会有多个线程是活动的场景。
    private Executor executor = Executors.newScheduledThreadPool(20);   //用来创建一个可以无限扩大的线程池，适用于服务器负载较轻，执行很多短期异步任务。
    private Executor executor = Executors.newWorkStealingPool();  //创建一个单线程的线程池，适用于需要保证顺序执行各个任务，并且在任意时间点，不会有多个线程是活动的场景。
*/

    public void test() {
        executor.execute(new Runnable() {
            @Override
            public void run() {
                System.out.println("aa");
            }
        });
    }


}
